Multiple object types on a canvas

ABSTRACT

Including multiple types of objects on a canvas is disclosed. In some embodiments, an ability to include on a displayed canvas simultaneously a set of objects comprising one or more objects of two or more different types, including a first type of object having associated with it an ability to define the content of a first cell by reference to one or more other cells such that the content of the first cell is updated automatically and without further human intervention if the content of one or more of the one or more other cells is changed and a second type of object not having said ability associated with it, is provided.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims benefit, under 35 U.S.C. §120, as a continuationof U.S. application Ser. No. 11/647,942, filed Dec. 28, 2006, entitled“Multiple Object Types On A Canvas.”

BACKGROUND OF THE INVENTION

The workspace of a sheet of a spreadsheet application typicallycomprises an infinite (or seemingly infinite) grid or table thatincludes an unlimited (or very large) number of rows and columns ofcells. Each of the cells typically has associated with it standardspreadsheet functionalities, such as the ability to enter data,formulas, controls, etc., and may include references to values in othercells on the same sheet or on different sheets. FIG. 1 illustrates anexample of the workspace 100 of a sheet of a typical spreadsheetapplication. The cells of such a workspace may be organized into one ormore tables. Other types of objects, such as charts and graphs, that usedata or information contained in one or more cells may be included inthe workspace of a sheet. Moreover, objects, such as images,photographs, animations, multimedia content, etc., that do notnecessarily depend on information contained in one or more cells and/ormay not be associated with any spreadsheet functionality may be includedin the workspace of a sheet. However, typically all such tables or otherobjects are associated with corresponding cells of the infinite (orseemingly infinite) grid comprising the sheet.

Although a subset of the rows and columns of cells in a workspace may beorganized into a table, the cells that comprise the table are notencapsulated into a single table object. Thus, a table defined in atypical spreadsheet application lacks flexibility as a single,independent object that can, for example, be formatted, moved around ina workspace, resized, scaled, etc., as a single object. It would beuseful to have a workspace in which all content is encapsulated inindividual objects, each of which provides with respect to its owncontent corresponding spreadsheet functionalities, if any and asapplicable.

Thus, there is a need for an improved spreadsheet paradigm.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments of the invention are disclosed in the followingdetailed description and the accompanying drawings.

FIG. 1 illustrates an example of the workspace of a sheet of a typicalprior art spreadsheet application.

FIG. 2(a) illustrates an embodiment of a user interface of a spreadsheetapplication.

FIG. 2(b) illustrates the addition of various objects to the canvas of aspreadsheet application.

FIG. 2(c) illustrates a paginated view of the canvas of a spreadsheetapplication.

FIG. 3 illustrates an embodiment of a process for providing a workspace.

FIG. 4 illustrates an embodiment of a process for displaying an objectin a workspace.

DETAILED DESCRIPTION

The invention can be implemented in numerous ways, including as aprocess, an apparatus, a system, a composition of matter, a computerreadable medium such as a computer readable storage medium or a computernetwork wherein program instructions are sent over optical orcommunication links. In this specification, these implementations, orany other form that the invention may take, may be referred to astechniques. A component such as a processor or a memory described asbeing configured to perform a task includes both a general componentthat is temporarily configured to perform the task at a given time or aspecific component that is manufactured to perform the task. In general,the order of the steps of disclosed processes may be altered within thescope of the invention.

A detailed description of one or more embodiments of the invention isprovided below along with accompanying figures that illustrate theprinciples of the invention. The invention is described in connectionwith such embodiments, but the invention is not limited to anyembodiment. The scope of the invention is limited only by the claims andthe invention encompasses numerous alternatives, modifications andequivalents. Numerous specific details are set forth in the followingdescription in order to provide a thorough understanding of theinvention. These details are provided for the purpose of example and theinvention may be practiced according to the claims without some or allof these specific details. For the purpose of clarity, technicalmaterial that is known in the technical fields related to the inventionhas not been described in detail so that the invention is notunnecessarily obscured.

Including multiple types of objects on a canvas is disclosed. In someembodiments, an ability to include on a displayed canvas simultaneouslya set of objects comprising one or more objects of two or more differenttypes, including a first type of object having associated with it anability to define the content of a first cell by reference to one ormore other cells such that the content of the first cell is updatedautomatically and without further human intervention if the content ofone or more of the one or more other cells is changed and a second typeof object not having said ability associated with it, is provided.

FIG. 2(a) illustrates an embodiment of a user interface of a spreadsheetapplication. The user interface 200 associated with the spreadsheetapplication includes various menus and options that include at leaststandard spreadsheet functionality. With respect to spreadsheet cells,for example, the term “at least standard spreadsheet functionality”includes the ability to define the content of one cell in such a waythat the content of the one cell is determined based at least in part onthe content of one or more other cells, and the content of the one cellis updated automatically without further human action if the content ofone or more of the one or more other cells is changed. With respect to achart or graph, for example, the term “at least standard spreadsheetfunctionality” includes the ability to define a chart or graph based atleast in part on the content of one or more cells and to update thechart or graph automatically and without further human action if thecontent of one or more of the one or more cells is changed.

FIG. 2(a) specifically illustrates a new sheet 202 in the spreadsheetapplication that is named “Party Planner.” The workspace of thespreadsheet application comprises a canvas 204. In some embodiments,canvas 204 is an infinite canvas. In some embodiments, canvas 204 is“seemingly infinite”, or essentially the same as being infinite forpractical purposes, in that it extends beyond the viewed portion shownin FIG. 2(a), in both the x and y directions, in amounts many times theportion shown in FIG. 2(a), and is of a size that is much greater thanone would normally expect to be filled with content or data in a normalbusiness, enterprise, or personal use case. In some embodiments, canvas204 is sufficiently large that an unused portion of canvas 204 is ordersof magnitude greater than a used portion to which user content has beenadded. In some embodiments, canvas 204 is infinite in the sense thatadditional space is made available automatically if an initial outerboundary is approached, e.g., by extending the boundary further out. Oneor more finite objects, such as tables, text, charts, graphs, shapes,images, photographs, graphics, animations, multimedia content, controls(e.g., checkboxes, sliders, steppers, buttons, knobs, popup lists,etc.), etc., may be placed on canvas 204 as desired. Depending on itstype, the spreadsheet functionality associated with the type of anobject placed on the canvas, if any, is available to be used withrespect to that object. For example, the cells of a table object areassociated with at least standard spreadsheet functionality associatedwith cells, including the ability to enter data, formulas, controls,etc., and may include references to values in other cells of that tableor another table or object on that sheet or on a different sheet. FIG.2(b) illustrates the addition of various objects to the canvas 204 ofsheet 202. As depicted in FIG. 2(b), a table 206, a pie chart 208,various shapes collectively associated with a seating chart 210, ashopping cart image 212, and a text box 214 have been added to canvas204. Each of the objects 206-214 is an atomic object that can beformatted, moved around on canvas 204, resized, scaled, etc., as asingle object. Relationships and/or references may exist between one ormore objects. For example, pie chart 208 is based on the data includedin the last column (i.e. the “Actual Cost” column) of table 206.

A spreadsheet application may include options to select different viewsof canvas 204. For example, a paginated view of canvas 204 may beselected via the “View” icon 216 as illustrated in FIG. 2(c) to show thepagination of the canvas, including how objects included on the canvaswould be distributed, if applicable, across multiple pages. Each objectplaced on a canvas, including tables such as table 206, can beindividually formatted, scaled, resized, and/or moved to a desiredlocation on the canvas. With the paginated view, an object, such as atable, can be easily scaled, resized, and/or moved, such as via a dragand drop operation, to a have a desired size and position (e.g., pagelocation and/or distribution which define the relative position at whichthe object would be printed if the associated sheet is printed) on thecanvas. Such ease of controlling the relative location and size of atable does not exist in typical grid-based spreadsheet applications inwhich moving a table defined by a set of rows and columns of cellsrequires copying and pasting the associated cells to the desiredlocation and scaling or resizing such a table requires manually resizingone or more of the rows and columns that comprise the table to obtain adesired size and/or page distribution of the table. In some embodiments,as and when the sizes and/or positions of one or more objects on acanvas such as canvas 204 are modified, for example, via scaling,resizing, moving, etc., the display of the objects and/or the pagedistribution of the objects when in a paginated view are dynamicallyupdated, for example, while the sizes and/or positions of the one ormore objects are being modified, so that the desired sizes and/or pagedistributions of the objects can be easily achieved. Formatting a tablein typical grid-based spreadsheet applications requires individualand/or subsets of rows, columns, and/or cells to be manually formattedas desired. However, when a table comprises an independent object, therows, columns, and/or cells of the table can be collectively formattedas a single table object as desired. In some embodiments, a predefinedformat may be selected to at least in part format a table. As depictedin the examples of FIGS. 2(b)-2(c), a desired style 218 is selected fortable object 206.

FIG. 3 illustrates an embodiment of a process for providing a workspace.In some embodiments, the workspace is associated with a spreadsheetapplication. Process 300 starts at 302 at which an empty canvas isdisplayed. For example, an empty canvas, such as canvas 204 of FIG. 2(a)is displayed at 302. In some embodiments, the canvas of 302 is aninfinite or seemingly infinite canvas. At 304, one or more finiteobjects are displayed on the canvas. The one or more finite objects maycomprise, for example, one or more tables, text boxes, charts, graphs,shapes, images, photographs, graphics, animations, multimedia content,etc. For example, with respect to FIGS. 2(a)-(c), objects 206-214 aredisplayed on canvas 204. In some embodiments, an object displayed at 304is associated with at least standard spreadsheet functionalitiesassociated with that type of object. In some embodiments, an objectdisplayed at 304 does not include any spreadsheet functionality. Process300 subsequently ends.

FIG. 4 illustrates an embodiment of a process for displaying an objectin a workspace, such as in a spreadsheet workspace. In some embodiments,process 400 is employed at 304 of process 300 of FIG. 3. Process 400starts at 402 at which an indication is received to display a finiteobject in a workspace. In some embodiments, the workspace comprises aworkspace of a spreadsheet application. The indication of 402 may bereceived, for example, in response to the selection of the finite objectvia an interface associated with an associated spreadsheet application,such as interface 200 of FIGS. 2(a)-(c). In some embodiments, theworkspace comprises a canvas. In some embodiments, the canvas comprisesan infinite or seemingly infinite canvas. The finite object maycomprise, for example, a table, text box, chart, graph, shape, image,photograph, graphic, animation, multimedia content, etc. In someembodiments, the finite object is associated with at least standardspreadsheet functionalities associated with that type of object. In someembodiments, the finite object does not include any spreadsheetfunctionality. At 404, the finite object is displayed in the workspace.For example, with respect to the examples of FIGS. 2(a)-(c), theselection of each object 206-214 results in the object being displayedon canvas 204. Process 400 subsequently ends. Process 400 may berepeated as one or more objects are selected to be added to a workspace.Process 400 may be employed to display one or more different types ofobjects, including spreadsheet and/or non-spreadsheet objects, on asingle canvas, which may be associated with the workspace of anyappropriate application, spreadsheet or otherwise.

In some embodiments, when a spreadsheet object is displayed in aworkspace of a non-spreadsheet application, at least some of thespreadsheet functionality including relationships between objects ismaintained in the non-spreadsheet application. For example, at leastsome of the spreadsheet functionality associated with the cells of atable object is maintained even when such an object is copied to adifferent application. With respect to the example of FIGS. 2(a)-(c),for instance, if table 206 and pie chart 208 are copied into theworkspace of another application such as a word processing orpresentation creating application, in some embodiments, at least some ofthe spreadsheet functionality and relationships associated with theobjects are maintained. For example, if the values of the cells of thelast column of table 206 are updated, pie chart 208 is dynamicallyupdated to reflect the changes in the non-spreadsheet application. Suchinteroperability of objects across applications may be possible, forexample, in a suite of applications that share the same or a similarframework.

As described herein, various types of objects which may or may not haveassociated spreadsheet functionality may be placed in the workspace of aspreadsheet application. As also described, an open canvas on which oneor more finite objects can be placed results in an improved spreadsheetworkspace on which objects including tables can be individuallymanipulated, e.g., formatted, scaled, resized, moved, etc., to achieve adesired configuration. Finite tables whose cells have at least standardspreadsheet functionality that can be added to such a canvas allow theelimination of the infinite or seemingly infinite grid of cellsassociated with traditional spreadsheet workspaces, resulting in acleaner and less complicated view of the workspace of a spreadsheetapplication. Although encapsulating spreadsheet cells into a singletable object has been described herein with respect to a spreadsheetapplication that includes a canvas as a workspace, the techniquesdescribed herein can be similarly extended to encapsulating a group ofcells as a single table object in traditional spreadsheet applicationworkspaces or other similar applications.

Although a spreadsheet application and user interface are described inthe examples discussed in detail above, the techniques described hereinmay be employed with respect to any other application, spreadsheet orotherwise, and associated user interface.

Although the foregoing embodiments have been described in some detailfor purposes of clarity of understanding, the invention is not limitedto the details provided. There are many alternative ways of implementingthe invention. The disclosed embodiments are illustrative and notrestrictive.

1. A method for providing a spreadsheet application, comprising:displaying a canvas comprising a workspace of a sheet of the spreadsheetapplication, wherein the canvas does not comprise a grid of spreadsheetcells; and providing an ability to include one or more objects on thecanvas, via a graphical user interface of the spreadsheet application.2. The method of claim 1, wherein the one or more objects comprise aspreadsheet object with a finite number of rows and columns
 3. Themethod of claim 2, wherein the one or more objects comprise anadditional object that is associated with the spreadsheet object, suchthat at least one characteristic of the additional object is definedbased upon at least one value of the rows and columns.
 4. The method ofclaim 3, wherein the additional object comprises a pie chart.
 5. Themethod of claim 1, wherein the one or more objects comprise atomicobjects that can be formatted, moved, resized, scaled, or anycombination thereof independently of one another on the canvas.
 6. Themethod of claim 1, wherein the one or more objects include objects ofone or more of the following types: tables, text boxes, charts, graphs,shapes, images, photographs, graphics, animations, multimedia content,and controls.
 7. The method of claim 1, comprising receiving anindication that an object is desired to be added to the canvas.
 8. Themethod of claim 7, comprising displaying the object on the canvas. 9.The method of claim 1, comprising displaying a paginated view of one ormore objects on the canvas.
 10. A system for providing a spreadsheetapplication, comprising: at least one memory; and at least one processorcommunicatively coupled to the at least one memory, the at least oneprocessor configured to: cause display of a canvas comprising aworkspace of a sheet of the spreadsheet application, wherein the canvasdoes not comprise a grid of spreadsheet cells; and provide an ability toinclude one or more objects on the canvas, via a graphical userinterface of the spreadsheet application.
 11. The system of claim 10,wherein the canvas comprises an infinite canvas.
 12. The system of claim10, wherein the one or more objects comprise a spreadsheet object with afinite number of rows and columns
 13. The system of claim 12, whereinthe one or more objects comprise an additional object that is associatedwith the spreadsheet object, such that at least one characteristic ofthe additional object is defined based upon at least one value of therows and columns.
 14. The system of claim 10, wherein the one or moreobjects comprise atomic objects that can be formatted, moved, resized,scaled, or any combination thereof independently of one another on thecanvas.
 15. A computer program product for providing a spreadsheetapplication, the computer program product being embodied in a tangiblenon-transitory computer readable medium and comprising computerinstructions, that if executed by a device, cause the device to perform:displaying a canvas comprising a workspace of a sheet of the spreadsheetapplication, wherein the canvas does not comprise a grid of spreadsheetcells; and providing an ability to include one or more objects on thecanvas, via a graphical user interface of the spreadsheet application.16. The computer program product of claim 15, wherein the one or moreobjects include objects of one or more of the following types: tables,text boxes, charts, graphs, shapes, images, photographs, graphics,animations, multimedia content, and controls.
 17. The computer programproduct of claim 15, wherein the one or more objects comprise atomicobjects that can be formatted, moved, resized, scaled, or anycombination thereof independently of one another on the canvas.
 18. Thecomputer program product of claim 15, wherein the one or more objectscomprise a spreadsheet object with a finite number of rows and columns.19. The computer program product of claim 18, wherein the one or moreobjects comprise an additional object that is associated with thespreadsheet object, such that at least one characteristic of theadditional object is defined based upon at least one value of the rowsand columns
 20. The computer program product of claim 19, wherein theadditional object comprises a pie chart.
 21. The system of claim 10,further comprising a display device communicatively coupled to the atleast one processor.